home *** CD-ROM | disk | FTP | other *** search
/ The AGA Experience 3 / AGA Experience Volume 3 (1997)(NFA - SAdENESS)[!].iso / amiga / classupdate / history.doc < prev    next >
Text File  |  1996-09-04  |  25KB  |  698 lines

  1. This file hilites some of the most notable changes to the ClassAct
  2. classes for release 2.0 and includes sections of the related autodoc
  3. for new class tags. This is an accumlative listing.
  4.  
  5. In this release, all classes have been revised to startup with V36 of
  6. the OS or later. A few bugs precluding use under OS 2.04 have been
  7. corrected as well. 
  8.  
  9. *************************************************************************
  10.  
  11. CLASS: bitmap.image 41.2
  12.  
  13. New image class release, written by Yvon Rozijn.
  14.  
  15. BUGS/CHANGES:
  16.  
  17.     None
  18.  
  19. *************************************************************************
  20.  
  21. CLASS: getfile.gadget 41.146
  22.  
  23. New gadget class release, written by Petter Nilsen.
  24.  
  25. BUGS/CHANGES:
  26.  
  27.     None
  28.  
  29. *************************************************************************
  30.  
  31. CLASS: getfont.gadget 41.23
  32.  
  33. New gadget class release, written by Petter Nilsen.
  34.  
  35. BUGS/CHANGES:
  36.  
  37.     None
  38.  
  39. *************************************************************************
  40.  
  41. CLASS: getscreenmode.gadget 41.13
  42.  
  43. New gadget class release, written by Petter Nilsen.
  44.  
  45. BUGS/CHANGES:
  46.  
  47.     None
  48.  
  49. *************************************************************************
  50.  
  51. CLASS: arexx.class 41.69
  52.  
  53. BUGS/CHANGES:
  54.  
  55. Corrected possible enforcer hits and potential lockup when using
  56. Voodoo's "get new mail" or running a copy of Voodoo twice via an
  57. Aweb mail plug in. Generally, the arexx class should be a little
  58. more stable/durable now.
  59.  
  60. *************************************************************************
  61.  
  62. CLASS: penmap.image 41.2
  63.  
  64. BUGS/CHANGES:
  65.  
  66. Note, under AmigaOS 3.x ObtainBestPen() is used, but under AmigaOS 2.x
  67. this function is NOT available, and you can supply your own mapping
  68. via IA_Pens, otherwise no pen remapping occurs and chunky images are
  69. converted to planer verbatim, and may look rather sad depending on the
  70. palette. If anyone has a ObtainBestPen() compatible or simular function
  71. with sources they care to contribute, it can easily be added to the
  72. penmap image class. (41.1)
  73.  
  74. Accidently passed a ULONG for a UWORD for the backgroud pen, odd
  75. that with prototypes SAS/C didn't even complain. Incidently the
  76. value assigned to this ULONG was casted as a UWORD :) (41.2)
  77.  
  78. NEW TAGS:
  79.  
  80.         PENMAP_Precision
  81.             Set the precision for ObtainBestPen() when penmap is used
  82.             under AmigaOS 3.0 or later. See the ObtainBestPen autodoc
  83.             for more details.
  84.             
  85.             Defaults to PRECISION_IMAGE.
  86.  
  87.             Applicability is (OM_NEW, OM_SET)
  88.  
  89.         PENMAP_ColorMap (struct ColorMap *)
  90.             This tag is an alternate way to pass a colormap
  91.             for use in ObtainBestPen(). If this tag is not provided
  92.             then the colormap attached to the screen's viewport
  93.             will be used, in that case PENMAP_Screen MUST be passed
  94.             to penmap. If under AmigaOS 2.x, no pen remapping occurs
  95.             unless default pens are passed via IA_Pens.
  96.  
  97.             Defaults to NULL.
  98.  
  99.             Applicability is (OM_NEW, OM_SET)
  100.  
  101.         PENMAP_MaskBlit (BOOL)
  102.             Blits penmap on to display using a mask plane, this
  103.             is very useful and encouraged when using penmap for
  104.             program logos for your about window, etc. Using the mask
  105.             technique, the preferenced window backfill pattern
  106.             will show thru around or potentially in your image.
  107.             If this effect is not desired, you should not use this
  108.             tag, and frame your images in a bevel.
  109.  
  110.             Defaults to FALSE.
  111.  
  112.             Applicability is (OM_NEW, OM_SET)
  113.  
  114. *************************************************************************
  115.  
  116. CLASS: bevel.image 41.24
  117.  
  118. BUGS/CHANGES:
  119.  
  120. Now implements nearly all beveling preference options, including bevel
  121. style, default group label positioning, 3D group label shadow, etc.
  122.  
  123. Fixed intermediate release bug causing omission of disable pattern
  124. rendering for draw states of IDS_DISABLED and IDS_SELECTDISABLED.
  125.  
  126. Fixed enforcer hits caused by rendering the new XEN bevels with out DrawInfo.
  127.  
  128. Implemented IM_FRAMEBOX method with very limited resolution
  129. awareness, *completly* untested at this time.
  130.  
  131. Previous intermediate release of ClassAct 2, there was a missing
  132. ReleasePen() whene using THICK or XEN preferenced bevels. 41.23
  133.  
  134. With 41.24, bevel longer uses ObtainBestPen()/ReleasePen(), but instead
  135. uses FindColor(). However, window class now attempts to lock the proper
  136. XEN/Thick pens ObtainBestPen() on window open, and ReleasePen() on
  137. window close. It is set not to alter your palette, simple lock the
  138. right colors if they exist and bevel should find these pens unless
  139. the palette changes such that another pen is a closer match. This
  140. still not the idea system, but it should correct the random pen
  141. color changing errors introduced by bevel 41.23 when it (correctly)
  142. released the pen after it was done using it. A better system may
  143. be devised in the future.
  144.  
  145. Under 2.04, a potential 0 dimention EraseRect() would cause a crash. Fixed.
  146. This only occured when a Vertical or Horizontal bar bevel image was used
  147. DIRECTLY as a layout child, but not if specified as the layout group
  148. bevel style.
  149.  
  150. NEW TAGS:
  151.  
  152.         BEVEL_ColorMap (struct ColorMap *) 
  153.             Screen ViewPort ColorMap, this tag is required tag for
  154.             proper BVS_BUTTON xen shadow pen selections. Gadget or
  155.             Image classes must supply this tag to bevel image
  156.             atleast once before rendering the object in order for
  157.             proper pen selections.
  158.  
  159.             Defaults to NULL.
  160.  
  161.             Applicability is (OM_NEW, OM_SET)
  162.  
  163.         BEVEL_Flags
  164.             Intentionally left undocumented! Used for some hidden
  165.             BVS_BUTTON xen style magic. Class authors inquire as needed.
  166.  
  167.             Defaults to 0.
  168.  
  169.             Applicability is (OM_NEW, OM_SET)
  170.  
  171.  
  172. *************************************************************************
  173.  
  174. CLASS: integer.gadget 41.14
  175.  
  176. BUGS/CHANGES:
  177.  
  178. Implemented INTEGER_MinVisible tag, see below.
  179.  
  180. Fully supports bevel style preferences. Thin, GadTools, Thick and XEN
  181. style is now applied to the arrow buttons.
  182.  
  183. NEW TAGS:
  184.  
  185.         INTEGER_MinVisible (WORD)
  186.             Set the minimum number of characters that should be
  187.             visible for a 'GDOMAIN_MIMIMUM' domain size. This is a handy
  188.             addition present in V41.127 or later to ensure a mimimum
  189.             number characters will be visible in a integer gadget.
  190.  
  191. *************************************************************************
  192.  
  193. CLASS: palette.gadget 41.0
  194.  
  195. BUGS/CHANGES:
  196.  
  197. Now correctly renders itself with all beveling preference modes.
  198.  
  199. NEW TAGS: none
  200.  
  201. *************************************************************************
  202.  
  203. CLASS: listbrowser.gadget 41.202
  204.  
  205. BUGS/CHANGES:
  206.  
  207. Added additional methods for optimized adding and refresh of
  208. specific nodes in a list.
  209.  
  210. Now correctly renders itself with beveling preference modes.
  211.  
  212. Handles lists with total node pixel count greater than 32768 pixels.
  213. propgclass on which scroller.gadget prior to V42 beta can only handle
  214. WORD variables. Because listbrowser smooth pixel scrolls, there was
  215. a good potential to overrun the WORD ranges. Scaled values are now
  216. used on large lists, in addition the new V42 beta scroller class
  217. handles LONG values and is implemented independant of propgclass.
  218.  
  219. Implmented additional mode of operation, see new tags below.
  220.  
  221. Tweaked Scroller size on 640x200 screens.
  222.  
  223. Now bevels the checkbox for checkable nodes, uses a a thin beveling
  224. style rather than the previous plain flat looking black box.
  225.  
  226. Now handles empty lists w/o enforcer hit(s).
  227.  
  228. Corrected error with LISTBROWSER_MakeVisible, if the node was
  229. below last visible node, it scrolled the node upward above the
  230. top visible node. The entire height of the list gadget was mistakenly
  231. added to the scroll offset.
  232.  
  233. Title separators could be caused to not refresh, notable in AWeb. Fixed.
  234.  
  235. As a result of fixing the above bug, an extra separator was drawn on 
  236. the far right in the title. Fixed.
  237.  
  238. NEW TAGS: 
  239.  
  240.         LISTBROWSER_HorizSeparators    (BOOL) (V41)
  241.             Renders horizontal lines below each node.  This is useful if your
  242.             listbrowser is very wide, and you want to make it easier for
  243.             users to follow the rows of data.
  244.  
  245.             Defaults to FALSE.
  246.  
  247.             Applicability is (OM_NEW, OM_GET, OM_SET)
  248.  
  249.         LISTBROWSER_CheckImage (struct Image *) (V41)
  250.             Provide a custom image for a checkbox node while that node is
  251.             in the checked state.  A NULL image means that listbrowser
  252.             render some default imagery.
  253.  
  254.             Defaults to NULL.
  255.  
  256.             Applicability is (OM_NEW, OM_GET, OM_SET)
  257.  
  258.         LISTBROWSER_UncheckedImage (struct Image *) (V41)
  259.             Provide a custom image for a checkbox node while that node is
  260.             in the unchecked state.  A NULL image means that listbrowser
  261.             render some default imagery.
  262.  
  263.             Defaults to NULL.
  264.  
  265.             Applicability is (OM_NEW, OM_GET, OM_SET)
  266.  
  267.         LISTBROWSER_TotalNodes (LONG) (V41)
  268.             Return the total number of nodes currently attached to the
  269.             listbrowser.
  270.  
  271.             Applicability is (OM_GET)
  272.  
  273. *************************************************************************
  274.  
  275. CLASS: button.gadget 41.2
  276.  
  277. BUGS/CHANGES:
  278.  
  279. Nominal domain now sizes 2 pixel taller to accomodate some
  280. buggy fonts and generally look better, as well and 6 pixels + bevel
  281. size wider.
  282.  
  283. Tweaked minimum domain height to me 2 pixels taller.
  284.  
  285. Fixed autobuttons domain height to fontheight + 7 to match
  286. string, and titleless dropdown chooser regardless of bevel types
  287. thus producing a consistant mindomain size and layout regardless
  288. of different sized frames. This likely will change in implementation,
  289. yet reach the same desired results, when an IM_DOMAIN method
  290. is is implemented in bevel class.
  291.  
  292. Nominal size domain is now a few pixels larger than minimum size
  293. for GA_Image buttons.
  294.  
  295. Revised rendering routines, may be a little more tolerable of
  296. MagicMenu's and other simular hacks, on the down side, it could
  297. make subclassing/method overloading a bit more challanging to do.
  298.  
  299. NEW TAGS:
  300.  
  301.         BUTTON_DomainString (STRPTR)
  302.             Used to specify the NULL terminated string to use as the text
  303.             to domain the gadgets minimum size. This string is NEVER
  304.             rendered on screen. This is useful when you need to create
  305.             a button with a empty ("") or NULL string, but want to enforce
  306.             minimum size in a layout group based on some initializing
  307.             string and the current preferenced font.
  308.  
  309.             Defaults to NULL.
  310.  
  311.             Applicability is (OM_NEW, OM_SET)
  312.  
  313. *************************************************************************
  314.  
  315. CLASS: checkbox.gadget 41.2
  316.  
  317. BUGS/CHANGES:
  318.  
  319. Eeek! Contrary to documentation, there was NO OM_UPDATE support at all.
  320. Update tag setting and rendering support implemented, as well as
  321. notification of selection state as per existing documentation.
  322.  
  323. NEW TAGS: none
  324.  
  325. *************************************************************************
  326.  
  327. CLASS: chooser.gadget V41.9
  328.  
  329. BUGS/CHANGES:
  330.  
  331. Now StackSwap()'s input methods when under input.device task context so
  332. to avoid a potential stack overrun on certain systems when opening the
  333. popup/dropdown selection window. This overrun was especially apparent
  334. on EGS systems.
  335.  
  336. Fixed titleless dropdown domain height to fontheight + 7 to match
  337. string, and autobuttons regardless of bevel type.
  338.  
  339. ActivateLayoutGadget() or keyboard short cuts now cause the popup menu
  340. to open. Cursor arrow keys move the selection bar, Return selects, Escape
  341. cancels as does the main window going inactive for any reason. Incidently
  342. this change allows support of GA_TabCycle to open the popup as well, however
  343. I'm not so sure this is a good thing to exploit in an application.
  344.  
  345. Recompiled with optimizer on, reduced size nearly 2k.
  346.  
  347. NEW TAGS:
  348.  
  349.         CHOOSER_Offset (UWORD)
  350.             This value is added to the value sent in notifications
  351.             via the 'CHOOSER_Active' tag. Since chooser selections
  352.             begin and 0 as the first selection, and some objects
  353.             begin at 1 (such as DATEBROWSER_Month accepts 1 thru 12)
  354.             this tag is useful in chooser to datebrowser innerconnections
  355.             to map a 0-11 chooser selection to datebrowser  month 1 thru 12.
  356.  
  357.             Defaults to 0.
  358.  
  359.             Applicability is (OM_NEW, OM_SET)
  360.  
  361. New option(s) for AllocChooserNodeAttrsA() and SetChooserNodeAttrsA();
  362.  
  363.         CNA_SelImage (struct Image *)
  364.  
  365.         Selected state Image to be placed to the left of the CNA_Text in
  366.         the Chooser menu. Background image pen remapping is not currently
  367.         implemented.
  368.  
  369.         CNA_ReadOnly (BOOL) (41.3)
  370.  
  371.         Selected popup/dropdown item under mouse is NOT rendered
  372.         as selected, by request of Yvon for AWeb's dropdown help.
  373.         It should be noted, this is potentially deceiving as the
  374.         the item can be selected, and will return a gadgetup.
  375.  
  376.         Note, 41.5 on up will/should block the gadgetup.
  377.  
  378.         CNA_Disabled (BOOL) (41.5)
  379.  
  380.         Blocks selection of item, no gadgetup is returned. Items are
  381.         ghosted via true ghosting with the background pen, simular to
  382.         intuition menus. A future version might take a clue from
  383.         MagicMenus 2.0 and ghost/shadow using aditional pens, as it
  384.         is much easier to read the disabled selection but still is
  385.         visible different. These ghosting styles could become user
  386.         referenced at risk of becomming another MUI like prefs. ;0
  387.  
  388.         CNA_Separator (BOOL) (41.7)
  389.  
  390.         Makes an item a non selectable separator (~~~~~~ style) node 
  391.         simular to intuition menus.
  392.  
  393.  
  394. *************************************************************************
  395.  
  396. CLASS: clicktab.gadget 41.1
  397.  
  398. BUGS/CHANGES:
  399.  
  400. New render styling, thought to to be more visually pleasing by most :)
  401.  
  402. Minimized rendering and return of GADGETUP when selecting the
  403. page that is already current.
  404.  
  405. TNA_Enabled changed to TNA_Disabled for consistancy with other tags
  406. but is still not supported anyway, so no harm done!
  407.  
  408. Reduced click tab height for better look on 640x200 screens, and
  409. reduced popup action from 2 pixels to 1 pixel. All in all, I'd
  410. say its an improvement.
  411.  
  412. NEW TAGS:
  413.  
  414. New option(s) for AllocClickTabNodeAttrsA() and SetClickTabNodeAttrsA();
  415.  
  416.         TNA_TextPen (WORD)
  417.  
  418.         Specifies pen number to use for the label.
  419.  
  420.         Defaults to pens[TEXTPEN].
  421.  
  422. *************************************************************************
  423.  
  424. CLASS: fuelgauge.gadget 41.2
  425.  
  426. BUGS/CHANGES:
  427.  
  428. Fully fills inner bevel areas for all bevel preference modes.
  429.  
  430. Added additional text rendering support, including VarArgs much like
  431. that which is supported by button.gadget.
  432.  
  433. Rendering should no longer cause icon dragging to abort. However,
  434. if you receive a non zero return value from SetGadgetAttrs() when
  435. updating FUELGAUGE_Level, that indicates fuelgauge could not perform
  436. its own safe locking update. In this case, you should NOT RefreshGList
  437. contrary to what you might thing. However, this applicable ONLY to V41
  438. of fuelgauge, prior versions requier RefreshGList to update visuals.
  439.  
  440. Also note, it is theoretically possible for the gauge to miss a render
  441. update, thus it is recommended any final status strings set in a gauge
  442. DO follow with a RefreshGList to ensure any final "resting state" of 
  443. the gadget is accuratly displayed.
  444.  
  445. Changed rendering code to make a speed advantage of using OS 3.0
  446. specific calls such as SetABPenDrMd() when using V39 or later.
  447.  
  448. NEW TAGS:
  449.  
  450.  
  451.         FUELGAUGE_VarArgs (APTR)
  452.             Varargs data array to supply data for RawDoFmt() when
  453.             format specifiers are to be used in GA_Text text strings.
  454.  
  455.             Defaults to NULL.
  456.  
  457.             Applicability is (OM_NEW, OM_SET)
  458.  
  459.         FUELGAUGE_Justification (WORD)
  460.             Justification mode of fuelgauge (GA_Text) text label.
  461.             Percentage rendering, when enabled, is always centered.
  462.  
  463.             Supports:
  464.  
  465.                 FGJ_LEFT
  466.                 FGJ_CENTER
  467.  
  468.             Defaults to FGJ_LEFT.
  469.  
  470.             Applicability is (OM_NEW, OM_SET)
  471.  
  472. *************************************************************************
  473.  
  474. CLASS: layout.gadget 42.30
  475.  
  476. BUGS/CHANGES:
  477.  
  478. Optimized domain, layout and render methods for greater speed.
  479.  
  480. Layout error introduced durring code optimizations introduced a small
  481. layout spacing error between the first two objects, now fixed.
  482.  
  483. Resize no longer cancels GA_ReadOnly setting.
  484.  
  485. 42.16 snuck out on May 30th 96 - dispose would have caused enforcer hits
  486. or a crash on some layout groups (notable in AWeb prefs). It was an
  487. intermediate bug that krept in and promptly fixed in 42.17.
  488.  
  489. 42.20 will now DisposeObject all children, even if the layout
  490. creation/taglist processing failed. In previous versions, if the
  491. tag list processing failed, object not yet processed in the
  492. layout tag list would not be disposed of. Thanks to Magnus
  493. and Yvon for catching this one.
  494.  
  495. 42.24 A *very* weird bug was fixed. A simple refresh window containing
  496. string or integer (ROM strgclass based) gadgets nested two or more
  497. layout levels deep in a page group would layer locker or guru the
  498. machine after refresh - ONLY if the the overlapping window being close
  499. was a shell/newcli window! This one I still don't fully understand yet
  500. but mangaged to fix it anyhow. ;0 Thanks to Yvon for catching this one.
  501.  
  502. 42.27 Significantly increased domain method via changes to LayoutLimits()
  503. and handling of label/domain alignments. Additionally, window resizing
  504. layout may occur faster as well as labels are nolonger re-domained
  505. as they have already been domained and aligned at window open time.
  506.  
  507. 40.30 Improved dispatching speed of OM_SET method slightly.
  508.  
  509. NEW TAGS:
  510.  
  511.         LAYOUT_Inverted (BOOL)
  512.             If set TRUE, children are added to the layout group
  513.             in reverse order, ie via AddHead() vs AddTail().
  514.             This might be especially useful for those who wish to
  515.             port the Asm programmer macros from another other GUI
  516.             system, ie, BGUI for example.
  517.  
  518.             It is also handy to just flip positions of gadgets in
  519.             a layout group, ie, speedbar on left/right prefs, etc.
  520.             Note, this tag does not change the order of gadgets
  521.             already present in a group. This tag must be passed first.
  522.  
  523.             Defaults to FALSE.
  524.  
  525.             Applicability is (OM_NEW, OM_SET)
  526.  
  527.         CHILD_ScaleHeight (UWORD)
  528.         CHILD_ScaleWidth (UWORD)
  529.             Cause the minimum domain size of an object to be 
  530.             scaled to a larger value. IE, a value of 20 with
  531.             a min domain size of 50 results in a 60 pixel minimum.
  532.  
  533.             That is to say;
  534.  
  535.                 newmin = min + ((scale * min)/100);
  536.  
  537.             These tags are handy for use on listbrowser object to extend
  538.             the width or height to a more realistic size. Because this
  539.             scaling could potentially force a layout beyond the maximum
  540.             size for a screen (thus causing a potential font fallback)
  541.             you should use some commen sence as to when to apply such
  542.             a scalar, and how much is overkill.
  543.  
  544.             Defaults to 0.
  545.  
  546.             Applicability is (OM_NEW, OM_SET)
  547.  
  548. *************************************************************************
  549.  
  550. CLASS: radiobutton.gadget 41.1
  551.  
  552. BUGS/CHANGES:
  553.  
  554. Corrected keyboard control so selection wraps around rather than
  555. incrementing or decrementing selection to an invalid/invisible selection.
  556.  
  557. NEW TAGS:
  558.  
  559. *************************************************************************
  560.  
  561. CLASS: speedbar.gadget 41.2
  562.  
  563. BUGS/CHANGES:
  564.  
  565. Corrected various potential bugs in SBNA_Toggle/SBNA_MXGroup handling.
  566.  
  567. Implemented SPEEDBAR_EvenSize tag.
  568.  
  569. Implemented SBNA_Disabled.
  570.  
  571. Now safty checks for empty lists, but to domain correctly your buttons
  572. must be added to the bar before domain/layout occurs.
  573.  
  574. Fixed, or atleast improved rendering/centering of vertical orientated
  575. bars.
  576.  
  577. Corrected rendering of SBNA_Disabled buttons.
  578.  
  579.  
  580. NEW TAGS:
  581.  
  582.         SPEEDBAR_EvenSize (BOOL)
  583.             Causes all buttons in the bar to size equal to the largest.
  584.  
  585.             Defaults to FALSE.
  586.  
  587.             Applicability is (OM_NEW, OM_SET, OM_GET)
  588.  
  589. New option(s) for AllocSpeedBarNodeAttrsA() and SetSpeedBarNodeAttrsA();
  590.  
  591.     SBNA_Disabled (BOOL)
  592.  
  593.     Set a button in the bar as disabled. If setting this after the bar
  594.     has been rendered, you must follow this with RefreshGList() on the
  595.     speedbar object to cause the disable rendering to occur.
  596.  
  597.     Defaults to FALSE.
  598.  
  599. *************************************************************************
  600.  
  601. CLASS: string.gadget 41.2
  602.  
  603. BUGS/CHANGES:
  604.  
  605. Incorrect semaphore in dispatcher allowed potential deadlock situation.
  606.  
  607. Fixed domain height to fontheight + 7 to match autobuttons and
  608. titleless dropdown choosers regardless of bevel types. And, caused
  609. string gadget height to be more uniform with integer gadget height
  610. which generally makes the GUI display look alot better, especially
  611. for 640x200 users where the prior versions of string gadget where a
  612. bit too tall.
  613.  
  614. Revised input handling methods some in attempt to fix a bug with
  615. window class gadgethelp, no change. Infact, the bug could be
  616. in strgclass itself - currently investigating that possibility.
  617.  
  618. NEW TAGS:
  619.  
  620.         STRINGA_MinVisible (WORD)
  621.             Set the minimum number of characters that should be
  622.             visible for a 'GDOMAIN_MIMIMUM' domain size. Nominal
  623.             domain sizes to twice this minimum. This is a handy
  624.             addition present in V40.35 or later to ensure a mimimum
  625.             number characters will be visible in a string gadget.
  626.  
  627. *************************************************************************
  628.  
  629. CLASS: window.class 42.39
  630.  
  631. BUGS/CHANGES:
  632.  
  633. Setting WA_BusyPointer TRUE will turn off defer layout so if the app
  634. is busy, a simple refresh window or resized window will refresh
  635. normally while the application is theoretically busy to process
  636. the window class input which causes the defer refresh to occur.
  637. Setting the busy state FALSE will return defer layout to the previous
  638. setting. In addition, GA_ReadOnly is also set/cleared on the window
  639. layout as well, a busy window will not accept input. If this is
  640. counter productive to you, you may override this by setting GA_ReadOnly
  641. FALSE (on the layout). In addition, a busy window will also call
  642. OffMenu(NOITEM) or OnMenu(NOITEM) to disable the menu bar.
  643.  
  644. It should be noted, checked menu items should be tracked/rechecked,
  645. this change was hoped to avoid that by window class not using
  646. ClearMenuStrip()/ResetMenuStrip() but this does not work fully either.
  647.  
  648. Window now as internal border prop scroller creation, but is undocumented
  649. as it may be replaced with border groups to allow neat stuff like a page
  650. flip/count gadget for word processors, bottom border text status
  651. gadgets, as well as scrollers. Comments & testers welcome...
  652.  
  653. Potential bugged/corrupted version of 41.24 crept out in a demo. Such
  654. a class missed window resize refresh on some simple refresh windows.
  655.  
  656. Window class now tries to obtain the best pens for XEN/Thick bevels
  657. on window open, and releases them on window close.
  658.  
  659. Corrected enforcer hit closing windows in an intermediate V42.31
  660. test release of the new pen allocation system.
  661.  
  662. Added WMHI_INTUITICK, it was documented but apparently wasn't
  663. implemented. Also added WMHI_MOUSEMOVE and WMHI_MOUSEBUTTONS
  664. as the next two WMHI_#? return values, however, for mouse move
  665. you still need to peek the mouse position elsewhere, such as
  666. in IntuitionBase->MouseX and MouseY. It can't be returned via
  667. in the window class input method code. Although, window corner
  668. relative mouse x/y tags might be a suggestion for the future.
  669.  
  670. #define WMHI_INTUITICK         (14<<16) /* IDCMP intuitick */
  671. #define WMHI_MOUSEMOVE         (15<<16) /* IDCMP mouse move */
  672. #define WMHI_MOUSEBUTTONS      (16<<16) /* IDCMP mouse buttons */
  673.  
  674. Windows set busy via WA_BusyPointer still allowed gadget activation
  675. via keyboard control. This is now corrected, and with this release
  676. the busy handling it done via Request()/EndRequest() with a NULL
  677. requester as recommended in the RKM.
  678.  
  679. NEW TAGS:
  680.  
  681.         WINDOW_RefWindow (struct Window *) (V42.38)
  682.  
  683.             Causes WINDOW_Position of CENTERSCREEN and TOPLEFT to be
  684.             relative to the window pointed to via this tag rather than
  685.             the screen. WINDOW_Position w/CENTERMOUSE is uneffected.
  686.  
  687.             Tag value: (WINDOW_Dummy + 41)
  688.  
  689.             (OM_NEW, OM_SET, OM_UPDATE)
  690.  
  691.             NOTE: This tag has not been fully tested yet, its currently
  692.             provided for those who need/wish to try it. You know who
  693.             you are. Please report your findings to caldi@usa.nai.net
  694.             if you use it. :)
  695.  
  696. *************************************************************************
  697.  
  698.